release 0.2.3#54
Merged
Merged
Conversation
…nd TMF-correct service lifecycle Closes #48.
0.2.3 — adopt diffo 0.4.1 changes, BaseCharacteristic auto-actions, a…
* AVC inherits CVC via :cvlan (single-hop) and NniGroup via [:cvlan, :svlan] (two-hop) — singular * CVC inherits NniGroup via :svlan; new :metrics characteristic with avcs_count, avcs_total_bandwidth * NniGroup new :metrics with cvcs/nnis counts and totals, plus utilization * NniGroup new :nnis calc — brings up each comprised NNI's typed value via :contains relationship * New InheritedCharacteristicViaAssignment (renamed) and InheritedCharacteristicViaRelationship sibling calcs * BandwidthProfile.downstream/1 maps profile atoms to Mbps * 3 new tests, 52/52 pass
* NTD :unis calc — reverse-inherits each assigned UNI's typed value via :port * ReverseInheritedCharacteristic extended with thing: filter (source-side principle) * New test/nbn/show_neo4j_test.exs — sync, non-sandboxed exploration module that builds the NBN graph in real Neo4j for browser inspection. Both prior :show_json tests moved here and re-tagged :show_neo4j * DataCase reverted to its original shape — sandbox isolates without needing per-module wipes * 1 new sandboxed test, 53/53 pass
* PRI single-hop avc/uni via :owns relationship; two-hop cvc/ntd via :owns then assignment * InheritedCharacteristicViaRelationship extended with then_via: for mixed paths * 1 new sandboxed test, 1 new show_neo4j exploration test, 54/54 pass
Convention refinement across PRs 1-3: aliases on assignments and on PRI's owns relationships now identify the related resource each consumer is part of (its domain role), not the slot/thing being received. * avc sets :cvc, cvc sets :nni_group, uni sets :ntd on their assignments * pri's owns relationships aliased :circuit (AVC) and :port (UNI) * inheritance walks updated to follow the new aliases * pool/metrics aggregations unaffected (still filter by `thing`) * memories and moduledoc examples revised
Match the NBN convention from #49: alias on the consumer's assignment names the upstream related resource it's part of, not the slot/thing being received. * Card sets :shelf on its slot assignment (was :slot) * Path sets :card on its port assignment (was :port) * Card.shelf walks via [:shelf]; Card.slot filters alias :shelf * Path.card walks via [:card]; Path.shelf via [:card, :shelf]; Path.port filters alias :card * Shelf.cards filters alias :shelf (was :slot) * ShelfTotalPorts filters alias :shelf * Tests updated; 54/54 pass
* removed direct :ash_json_api dep, the AshJsonApi.Domain extension, the json_api do ... routes block on Nbn, and json_api blocks / AshJsonApi.Resource extensions on all NBN resources * deleted lib/nbn/api_router.ex * router now serves /catalog + /mcp only; everything else 404s * MCP becomes the only externally-callable surface * 54/54 tests pass
* new Mix.Tasks.Gen.ApiDocs walks each domain's resource_references and emits a markdown table per resource — function, action, args, purpose * filters behaviour-injected :specified_by/:features/:characteristics * type labels prettified (Ash.Type.Struct → struct, etc.) * SPDX headers baked into the generated template (REUSE-compliant across regenerations) * generated documentation/domains/_access_api.md (5 resources) * generated documentation/domains/_nbn_api.md (8 resources)
* documentation/domains/access.md — narrative tour of Access: resources, topology, inheritance pattern, scenario, pointer to _access_api.md and Provider (the "what's underneath" lift) * documentation/domains/diffo_example_access.livemd — runnable end-to-end scenario through the code-interface (no JSON:API) * mix.exs — both registered as ExDoc extras under Domains
* documentation/domains/provider.md — short lift-the-lid page that names the Provider primitives used by Access (Specification, Instance, Characteristic, Pool, Assignment, Relationship, Feature, Place, Party, state machine), explains the TMF JSON encoder, and points at diffo's own livebooks for the deep dive * mix.exs — registered as an extra
* documentation/domains/nbn.md — merged technical content into the existing flavor page; dropped Perentie framing; kept the RSP spirit-animal table; added topology / inheritance / metrics map and scenario walk-through; linked to _nbn_api.md * documentation/domains/diffo_example_nbn.livemd — rewritten against the current code-interface and #49 alias convention; removed the broken mine_* / :isAssigned legacy and the JSON:API section; added inheritance + metrics demonstrations
…tation 51 livebook and improve documentation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.